<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>23-数组find和findIndex方法</title>
</head>
<body>
    <script>
        // 数组find和findIndex方法
        const goods = [
            {
                name:'小米',
                price: 1999
            },
            {
                name:'华为',
                price: 23999
            },
            {
                name:'苹果',
                price: 9999
            }
        ]
        // 1. find 查找 满足条件的元素 返回第一个满足条件的元素，找不到则返回 undefined
        const o = goods.find(function (e,i) {
            // console.log(e) 
            // {name: '小米', price: 1999}
            // {name: '华为', price: 23999}
            // {name: '苹果', price: 9999}
            // console.log(i) // 0 1 2
            return e.name === '华为'
        })
        // console.log(o) // {name: '华为', price: 23999}

        // 1.1 和 filter 的区别
        // （1）返回值不一样，filter 返回的是数组 find 返回的是数组元素
        // （2）查找方式不一样，filter是查找所有满足条件的数组元素，find只查找第一个满足条件的，找到就终止查找

        // 2. findIndex 查找满足条件的元素的索引号，找不到则返回 -1
        // const index = goods.findIndex(function (e,i){
            // console.log(e)
            // {name: '小米', price: 1999}
            // {name: '华为', price: 23999}
            // {name: '苹果', price: 9999}
            // console.log(i) // 0 1 2
            // return e.name === '华为'
            // return e.name === '华为1'
        // })
        // console.log(index)  // 1
        // console.log(index)  // - 1

        // 箭头函数 写法
        const index = goods.findIndex(item => item.name === '华为')
        console.log(index) // 1
        
        
        
    </script>
</body>
</html>